package com.w7vm.menuweb.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;

import com.w7vm.menuweb.entity.CardapioEspecialidadeWeb;
import com.w7vm.menuweb.entity.RestauranteFilialWeb;
import com.w7vm.menuweb.entity.RestauranteSedeWeb;

@Stateless
public class CardapioEspecialidadeDAO extends GenericDAO<CardapioEspecialidadeWeb> {

	
	@PersistenceContext
	private EntityManager em;
	
	public CardapioEspecialidadeDAO() {
		super(CardapioEspecialidadeWeb.class);
	}


	public void saveCardapioEspecialidade(CardapioEspecialidadeWeb especialidadeEntity) {
		System.out.println("[IAM-EJB][saveCardapioEspecialidade] :");
		em.persist(especialidadeEntity);
	}

	public CardapioEspecialidadeWeb mergeUpdate(CardapioEspecialidadeWeb especialidadeEntity) {
		System.out.println("[IAM-EJB][mergeUpdate] :"+ especialidadeEntity.getIdCardapioEspecialidadeWeb());
		return super.update(especialidadeEntity);
	}

	public void deleteCardapioEspecialidade(CardapioEspecialidadeWeb especialidadeEntity) {
		System.out.println("[IAM-EJB][deleteCardapioEspecialidade] :"+ especialidadeEntity.getIdCardapioEspecialidadeWeb());
		especialidadeEntity = em.find(CardapioEspecialidadeWeb.class, especialidadeEntity.getIdCardapioEspecialidadeWeb());
		em.remove(especialidadeEntity);
		em.flush();
	}

	public List<CardapioEspecialidadeWeb> findCardapioEspecialidadeByIDRestauranteSede(int id) {
		System.out.println("[IAM-EJB][findCardapioEspecialidadeByIDRestauranteSede] :"+ id);
		Map<String, Object> parameters = new HashMap<String, Object>();
		parameters.put("idRestaurante", id);
		try{
			return super.findByCriterion(CardapioEspecialidadeWeb.FIND_ESPECIALIDADE_BY_IDRESTAURANTESEDE, parameters);
		}catch (NoResultException e){
			System.err.println(e.getMessage());
			return null;
		}
	}

	public List<CardapioEspecialidadeWeb> findCardapioEspecialidadeByIDRestauranteFilial(int id) {

		System.out.println("[IAM-EJB][findCardapioEspecialidadeByIDRestauranteFilial] :"+ id);
		
		Map<String, Object> parameters = new HashMap<String, Object>();
		parameters.put("idRestaurante", id);
		try{
			return super.findByCriterion(CardapioEspecialidadeWeb.FIND_ESPECIALIDADE_BY_IDRESTAURANTEFILIAL, parameters);
		}catch (NoResultException e){
			System.err.println(e.getMessage());
			return null;
		}
	}

	
}
